<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        strong{
            display: inline-block;
            width: 100px;
            text-align: center;
        }
    </style>
</head>
<body>
    <div id="app">
        <strong>{{test}}</strong> <br>
        姓:<input type="text" v-model="firstName"> <br>
        名:<input type="text" v-model="lastName">  <br>
        <strong>{{fullName}}</strong>
    </div>
</body>
<script src="../js/vue.js"></script>
<script>
    // 1. 当模板过于复杂时 我们需要使用计算属性 来简化模板
    new Vue({
        el:"#app",
        data:{
            firstName:"T",
            lastName:"Mac",
            test:"test"
        },
        computed:{
            //计算属性也是响应式的
            //1. 在初始化的时候调用一次!!
            //2. 在其响应式依赖产生改变时 再调用!
            fullName(){
                //computed内部出现的data中数据  我们称为是计算属性的依赖
                console.log("fullName")
                //computed & lastName 称为fullName的依赖
                //当依赖产生改变时 对应的计算属性会得到重新执行!!!
                return `${this.firstName}-${this.lastName}`
            }
        },
        mounted(){
            setTimeout(()=>{
                this.test = "xxx"
            },2000)
        }
    })
</script>
</html>